<?php

$keyword = "豆娃连连看";

$inData = sub_words($keyword);

//$inData = implode("','",array('豆娃连连看','海底挖宝藏',400,500));
//$data = $_->source->_select(array('id','name'),array('name IN'=>$inData));
//$data = $_->source->_select(array('id','name'),array('name LIKE'=>$inData));
//print_r($data);exit;

$smarty->_display();

function sub_words($str, $charset="utf-8") 
{ 
   if(function_exists("mb_substr")) 
   { 
	   
	   $length = mb_strlen($str, $charset);
	   for($i = $length;$i > 0;$i--)
	   {
		   for($n = 0;$n <= $length-$i;$n++)
		   {
				$words[] = mb_substr($str, $n, $i, $charset);
		   }
	   }
   }else
   { 
       $re['utf-8']  = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/"; 
	   $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/"; 
	   $re['gbk']    = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/"; 
	   $re['big5']   = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/"; 
	   preg_match_all($re[$charset], $str, $match); 
	   $length = count($match[0]);
	   for($i = $length;$i > 0;$i--)
	   {
		   for($n = 0;$n <= $length-$i;$n++)
		   {
				$words[] = join("",array_slice($match[0], $n, $i));
		   }
	   }
   } 
   $words = array_filter($words,'blank');//过滤空格
   return $words;
} 
function blank($var){return(trim($var)==$var);}

/*
function old_sub_words($str, $start=0, $length, $charset="utf-8", $suffix=true) 
{ 
   if(function_exists("mb_substr")) 
   { 
       if(mb_strlen($str, $charset) <= $length) return $str; 
       $slice = mb_substr($str, $start, $length, $charset); 
   }
   else
   { 
       $re['utf-8']   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/"; 
       $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/"; 
       $re['gbk']          = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/"; 
       $re['big5']          = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/"; 
       preg_match_all($re[$charset], $str, $match); 
       if(count($match[0]) <= $length) return $str; 
       $slice = join("",array_slice($match[0], $start, $length)); 
   } 
   if($suffix) return $slice."…"; 
   return $slice;  
} 
*/
?>